package com.luojing.myInterface.t1;

/**
 * 创建一个能根据所传参数不同,而执行不同行为的方法,我们称之为策略设计模式
 * 策略就是传进去的参数对象,他包含要执行的代码,这里,process 对象就是一个策略,在main中可以看到三种不同类型的策略应用到string s上,
 * 但是这样的缺点也很明显,耦合度太高,必须继承process才能实现,如果后来新增一个非继承process的类,但是有和process具有相同的接口元素,那么久不能将新的类用于process的方法
 *
 * @author luojing
 * @create 2018/08/21 下午9:26
 **/
public class Apply {

  public static void process(Processor processor,Object s){
    System.out.println("Using Processer " + processor.name());
    System.out.println(processor.process(s));
  }

  public static String s = "this is my java";
  public static void main(String[] args) {
    process(new Uppercase(),s);
    process(new Lowercase(),s);
    process(new Splitcase(),s);
  }
}
